package com.uzai.console.entity.es;

import com.uzai.common.utils.EsIndexName;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

/**
 * 微信群成员
 * @Auther: jianghan
 * @Date: 2021/11/19 11:33
 * @Description:
 */
@Document(indexName = EsIndexName.UZAI_WX_GROUP_MEMBER, shards = 3, replicas = 2)
public class EsWxGroupMember {

    @ApiModelProperty("主键id：merId_groupWxid_wxid")
    @Id
    @Field(type = FieldType.Keyword)
    private String id;

    @ApiModelProperty("运营商id")
    @Field(type = FieldType.Long)
    private Long merId;

    @ApiModelProperty("群微信id")
    @Field(type = FieldType.Keyword)
    private String groupWxid;

    @ApiModelProperty("成员微信id")
    @Field(type = FieldType.Keyword)
    private String wxid;

    @ApiModelProperty("成员微信昵称")
    @Field(type = FieldType.Text)
    private String nick;

    @ApiModelProperty("成员群内昵称")
    @Field(type = FieldType.Text)
    private String nickRemark;

    @ApiModelProperty("成员头像")
    @Field(type = FieldType.Keyword)
    private String himg;

    @ApiModelProperty("备注")
    @Field(type = FieldType.Text)
    private String remark;

    @ApiModelProperty("最近发言时间")
    @Field(type = FieldType.Integer)
    private int recentSpeakTime;

    @ApiModelProperty("成员在群状态(0-离群；1-在群；2-被踢；3-黑名单)")
    @Field(type = FieldType.Integer)
    private int status;

    @ApiModelProperty("退群时间")
    @Field(type = FieldType.Integer)
    private int quitTime;

    @ApiModelProperty("踢群原因")
    @Field(type = FieldType.Text)
    private String quitReason;

    @ApiModelProperty("邀请人微信id")
    @Field(type = FieldType.Keyword)
    private String inviterWxid;

    @ApiModelProperty("成员类型(0-普通成员；1-机器人)")
    @Field(type = FieldType.Integer)
    private int type;

    @ApiModelProperty("创建时间")
    @Field(type = FieldType.Integer)
    private int createTime;

    @ApiModelProperty("修改时间")
    @Field(type = FieldType.Integer)
    private int updateTime;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Long getMerId() {
        return merId;
    }

    public void setMerId(Long merId) {
        this.merId = merId;
    }

    public String getGroupWxid() {
        return groupWxid;
    }

    public void setGroupWxid(String groupWxid) {
        this.groupWxid = groupWxid;
    }

    public String getWxid() {
        return wxid;
    }

    public void setWxid(String wxid) {
        this.wxid = wxid;
    }

    public String getNick() {
        return nick;
    }

    public void setNick(String nick) {
        this.nick = nick;
    }

    public String getNickRemark() {
        return nickRemark;
    }

    public void setNickRemark(String nickRemark) {
        this.nickRemark = nickRemark;
    }

    public String getHimg() {
        return himg;
    }

    public void setHimg(String himg) {
        this.himg = himg;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public int getRecentSpeakTime() {
        return recentSpeakTime;
    }

    public void setRecentSpeakTime(int recentSpeakTime) {
        this.recentSpeakTime = recentSpeakTime;
    }

    public int getStatus() {
        return status;
    }

    public void setStatus(int status) {
        this.status = status;
    }

    public int getQuitTime() {
        return quitTime;
    }

    public void setQuitTime(int quitTime) {
        this.quitTime = quitTime;
    }

    public String getQuitReason() {
        return quitReason;
    }

    public void setQuitReason(String quitReason) {
        this.quitReason = quitReason;
    }

    public String getInviterWxid() {
        return inviterWxid;
    }

    public void setInviterWxid(String inviterWxid) {
        this.inviterWxid = inviterWxid;
    }

    public int getCreateTime() {
        return createTime;
    }

    public void setCreateTime(int createTime) {
        this.createTime = createTime;
    }

    public int getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(int updateTime) {
        this.updateTime = updateTime;
    }

    public int getType() {
        return type;
    }

    public void setType(int type) {
        this.type = type;
    }
}
